import { get, post } from '@/service/request'

// 根据父级Id获取用户菜单树
export function getTableDataRequest(params?: Partial<SearchParams>) {
  return get<PageDataResponse<AppletUserData>>('/lxdd/appletUser/page', params)
}

// 修改上线车辆状态
export function updateOnlineStatusRequest(params: { id: string; carId: string; onlineStatus: 0 | 1 }) {
  return post('/lxdd/appletUser/updateOnlineCar', params)
}
// 切换站点 mixingStationNumber:搅拌站id
export function updateUserStation(params: { id: string; mixingStationNumber: string }) {
  return post('/lxdd/appletUser/changeMixingStation', params)
}

// 编辑小程序用户信息
export function updateUserInfoRequest(params: Pick<AppletUserData, 'id' | 'accountType' | 'realName' | 'enableStatus'>) {
  return post('/lxdd/appletUser/edit', params)
}

// 绑定客户信息
export function bindUserCustomerRequest(params: any) {
  return post('/lxdd/appletUserCustomer/add', params)
}

// 删除客户信息
export function deleteUserCustomerRequest(params: { id: string }) {
  return post('/lxdd/appletUserCustomer/delete', params)
}

// 查询绑定客户信息
export function getUserCustomerDataRequest(params: { appletUserId: string }) {
  return get<BindCustomer[]>('/lxdd/appletUserCustomer/list', params)
}

// 查询用户可以绑定客户
export function getBindingAllowCustomerRequest(params: any) {
  return get<PageDataResponse<AllowBindCustomer>>('/lxdd/customer/canBindingCustomerPage', params)
}

// 绑定搅拌站
export function bindUserStationRequest(params: any) {
  return post('/lxdd/appletUserStation/add', params)
}

// 删除搅拌站
export function deleteUserStationRequest(params: { id: string }) {
  return post('/lxdd/appletUserStation/delete', params)
}

// 查询已绑定搅拌站
export function getUserStationDataRequest(params: { appletUserId: string }) {
  return get<BindStation[]>('/lxdd/appletUserStation/list', params)
}

// 查询可绑定搅拌站
export function getAllowStationDataRequest(params: { appletUserId: string; nowPage: number; pageSize: number; searchKey: string }) {
  return get<PageDataResponse<AllowBindStation>>('/lxdd/mixingStation/canBindingMixingStationPage', params)
}

// 绑定车辆
export function bindUserCarRequest(params: any) {
  return post('/lxdd/appletUserCar/add', params)
}

// 删除车辆
export function deleteUserCarRequest(params: { id: string }) {
  return post('/lxdd/appletUserCar/delete', params)
}

// 查询用户已绑定车辆
export function getUserCarDataRequest(params: { appletUserId: string }) {
  return get<BindingCar[]>('/lxdd/appletUserCar/list', params)
}

// 查询用户可以绑定车辆
export function getBindingAllowCarRequest(params: any) {
  return get<PageDataResponse<BindingCar>>('/lxdd/car/canBindingCarPage', params)
}

export interface SearchParams extends PageQuery {
  realName: string // 真实姓名
  carNumber: string // 车牌号码
  mixingCarCode: string // 搅拌车号
  carStationNumber: string // 车辆所属站点
  phone: string // 手机号码 模糊搜索
  accountType: 1 | 2 | 3 // 账号类型：1.司机 2.客户 3.技术员
  enableStatus: 0 | 1 // 启用状态：0.停用 1.启用
  timeType: 1 | 2 | 3 // 查询时间类型:1创建时间；2.更新时间；3.提交时间
  driverIsOnline: 0 | 1 // 司机是否上线：0.否 1.是
  startTime: string
  endTime: string
}

export interface AppletUserData {
  id: string // id
  realName: string // 真实姓名
  accountType: 1 | 2 | 3 // 账号类型：1.司机 2.客户 3.技术员
  phone: string // 手机号
  bindingCustomer: string // 绑定客户
  driverIsOnline: 0 | 1 // 司机是否上线：0.否 1.是
  onlineCarId: string
  onlineCarNumber: string // 当前车辆
  mixingCarCode: string // 搅拌车号
  carStationName: string // 车辆所属站点
  currentStationName: string // 技术员当前站点名称
  currentStationNumber: string // 技术员当前站点id
  enableStatus: 0 | 1 // 启用状态
  createTime: string // 创建时间
}

export interface BindingCar {
  appletUserId: string // 小程序用户id
  id: string
  carId: string
  carNumber: string
  mixingCarCode: string // 搅拌车号
  weightLimit: number // 核载重量
}
/**
 * 绑定操作提交搅拌站数据
 */
export interface BindStation {
  mixingStationName?: string
  mixingStationNumber: string
}
export interface AllowBindStation {
  id: string
  name: string
  number: string
}
/**
 * 客户数据
 */
export interface BindCustomer {
  id?: string
  customerName: string
  customerCode: string
}
/**
 * 可绑定客户数据
 */
export interface AllowBindCustomer {
  id: string
  name: string
  code: string
}
